﻿using System;
using System.Collections.Generic;
using System.Text;
using Dare.Utilities.Data;
using System.Data;

namespace Stone.Data.Providers
{
    public abstract class DatabaseDataProvider : DataProviderBase
    {
        public DatabaseDataProvider()
            : base()
        {
        }
        
        public abstract void InitDatabase(TransactionManager manager);

        public abstract DataTable SelectAsTable(TransactionManager manager, string sql);

        public abstract int ExecuteNonQuery(TransactionManager manager, string sql);

        public abstract T ExecuteScalar<T>(TransactionManager manager, string sql, T t);

        public abstract DateTime GetDateTime(TransactionManager manager);

        public abstract void FixTreeTable(TransactionManager manager, string tbEntity, string tbTree, string colEntityId, string colEntityParentId, string colTreeEntityId, string colTreeEntityParentId);
    }
}
